Conversation
- Restore <meta name="viewport" content="width=device-width, initial-scale=1.0"> accidentally removed in d1ac616 (PR #2); mobile browsers were falling back to ~980px desktop width and scaling down the UI - Add @Keyframes flash-dest definition missing from d1ac616; destination card outboxes were referencing the animation but it was never defined, silently breaking flash-on-update feedback Co-authored-by: stuforfun <stuforfun@users.noreply.github.com>
- Verified city count: 1,055 entries, 1,039 unique names, 44 aliases - Documents DST-awareness, fuzzy search, half/quarter-hour offsets - Adds technical reference table and local dev instructions
|
To use Codex here, create an environment for this repo. |
|
Codex review: I re-reviewed the two commits currently unique to this branch and found no new diff-specific issues.
Residual repo issues worth tracking, but not introduced by these two commits:
|
- Remove false persistence claim: localStorage is cleared on startup via removeItem() in the init IIFE; app is stateless between visits - Fix CDN claim: Google Fonts is loaded from CDN at runtime; corrected 'zero CDN' to reflect actual behaviour
Init IIFE was calling removeItem(STORAGE) unconditionally, wiping any saved state before it could be loaded. loadState() and saveState() were fully implemented but persistence was effectively disabled. Now: attempt loadState() on startup; if a saved session exists, restore origin city, timezone, format, date, time, and all destination cards, then convert. Fall back to fresh start if no saved state found.
The stateless note was added after Codex caught removeItem() wiping state on startup. That bug is now fixed in af45417; README updated to accurately reflect working persistence again.
|
Codex review: I found one additional branch-head issue in the startup restore path.
This makes the restored session internally inconsistent even though the conversion math is using the saved timezone. |
Codex review (PR #3) caught that af45417 restored fromTz correctly but never updated the #origin-tz display element. After reload, the conversion math was correct but the origin timezone field still showed the placeholder text, creating an inconsistent UI. Fix: after restoring fromTz from saved state, set origin-tz.textContent to utcLabel(s.tz) and add the 'live' class, matching what the dropdown select handler does on a fresh city pick.
|
Codex review: I re-reviewed the current branch head ( I do not see any new diff-specific issues in the branch at this point. The previous restore-path inconsistency appears addressed: init now repopulates Residual risk: this is still based on code inspection only. I did not run the app in a browser here, so the remaining gap is end-to-end coverage around reload/restore behavior. |
Follow-up to PR #2 (d1ac616). Two regressions caught in post-merge review:
Fixes
width=device-width, initial-scale=1.0with notranslate tags; mobile browsers were rendering at ~980px desktop widthDocs
Reviewed by: @codex review